草庐IT

php - 在 EC2 实例上启用 OpenSSL

全部标签

ruby - 有没有办法从该实例内部为 Ruby 类的实例创建方法?

让classExample定义为:classExampledefinitialize(test='hey')self.class.send(:define_method,:say_hello,lambda{test})endend调用Example.new;Example.new我收到一个警告:方法已重新定义;丢弃旧的say_hello。我得出结论,这一定是因为它在实际类中定义了一个方法(从语法上看是有道理的)。当然,如果Example的多个实例在其方法中具有不同的值,那将是灾难性的。有没有办法从实例内部为类的实例创建方法? 最佳答案

Ruby - 在模块/类之间共享记录器实例

正在编写一个小的Ruby脚本,该脚本可以访问网络并抓取各种服务。我有一个模块,里面有几个类:moduleCrawlerclassRunnerclassOptionsclassEngineend我想在所有这些类中共享一个记录器。通常我只是将它放在模块中的常量中并像这样引用它:Crawler::LOGGER.info("Hello,world")问题是在我知道输出的去向之前我无法创建我的记录器实例。您通过命令行启动爬虫,此时您可以告诉它您想要在开发(日志输出到STDOUT)或生产(日志输出到文件crawler.log)中运行:crawler--environment=production我

ruby - 如何在 Ruby 的 IRB 中启用自动完成

当我使用Merb的内置控制台时,我得到了类似于标准bash提示符的选项卡自动完成功能。我发现这很有用,并希望在非merbIRBsession中启用它。我如何在IRB中获得自动完成? 最佳答案 只需将require'irb/completion'放入您的irbrc。如果这不起作用,请尝试绑定(bind),http://tagaholic.me/bond/:require'bond';require'bond/completion'Bond不仅提高了irb的完成度,http://tagaholic.me/2009/07/22/bette

ruby - 在类方法中使用实例变量 - Ruby

我有一个类似下面的类,我使用实例变量(数组)来避免使用大量方法参数。它按我的预期工作,但这是一个好的做法吗?实际上我不希望它起作用,但我猜想类方法在其他语言中不能像静态方法一样工作。classDummyClassdefself.dummy_method1@arr=[]#Playwiththatarrayenddefself.dummy_method2#use@arrforsomethingelseendend 最佳答案 Ruby中实例变量作用于类的原因是Ruby类是本身的实例(类Class的实例)。通过检查DummyClass.cl

ruby - 使用 RSpec 检查某物是否是另一个对象的实例

我需要一种方法来使用RSpec检查一个对象是否是另一个对象的实例。例如:describe"newshirt"doit"shouldbeaninstanceofaShirtobject"#Howcanicheckifitisaninstanceofashirtobjectendend 最佳答案 首选语法是:expect(@object).tobe_aShirt旧的语法是:@object.shouldbe_an_instance_ofShirt请注意,两者之间存在非常细微的差别。如果Shirt从Garment继承,那么这两个期望都会通过

ruby - 向实例化对象添加方法

obj=SomeObject.newdefobj.new_method"dosomethings"endputsobj.new_method>"dosomethings"这工作正常。但是,我需要在现有方法中做同样的事情:defsome_random_methoddefobj.new_method"dosomethings"endend也可以正常工作,但是在一个方法中包含一个方法看起来很糟糕。问题是,有没有其他方法可以添加这样的方法? 最佳答案 在ruby​​1.9+中,使用define_singleton_method有更好的方法,

ruby-on-rails - Rails 3 - 没有要加载的文件 - openssl

运行Rails服务器时,出现以下错误:没有要加载的文件--openssl我尝试使用我在网上找到的解决方案。我转到~/.rvm/src/ruby-1.9.2-head/ext/openssl。我输入:rubyextconf.rb,但我得到以下信息:===OpenSSLforRubyconfigurator======Checkingforsystemdependentstuff...===checkingfort_open()in-lnsl...nocheckingforsocket()in-lsocket...nocheckingforassert.h...yes===Checking

ruby - gem 安装因 openssl 失败而失败

我尝试在我的OSXMountainLion上安装cocoapods(http://cocoapods.org/)。moshe-mbp:~moshem$geminstallcocoapodsERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:Unabletodownloaddatafromhttps://rubygems.org/-SSL_connectreturned=1errno=0state=SSLv3readserverkeyexchangeB:badecpoint(https://rubygems.org/latest_s

ruby - 如何检查变量是否是类的实例?

在Java中,您可以执行instanceof。是否有Ruby等价物? 最佳答案 几乎完全一样。您可以使用Object的instance_of?方法:"a".instance_of?String#=>true"a".instance_of?Object#=>falseRuby也有is_a?和kind_of?方法(这两个是别名,并且工作完全一样),返回true是父类(superclass)匹配之一:"a".is_a?String#=>true"a".is_a?Object#=>true 关于

ruby - Ruby 实例变量什么时候设置?

classHello@hello="hello"defdisplayputs@helloendendh=Hello.newh.display我创建了上面的类。它不打印任何东西。我认为实例变量@hello是在类声明期间设置的。但是当我调用显示方法时,输出为“nil”。执行此操作的正确方法是什么? 最佳答案 Ruby中的实例变量在第一次学习Ruby时可能会有点困惑,特别是如果您习惯了另一种OO语言,如Java。您不能简单地声明一个实例变量。关于ruby​​中的实例变量,除了带有@符号前缀的符号外,最重要的事情之一是它们在第一次被分配给时